Testing fabricated integrated circuits to determine proper operation has always been a difficult problem. There are two major types of errors. A design defect means that the integrated circuit was manufactured to a design not proper for the intended purpose. Such a defect will effect every integrated circuit until the design is changed. The integrated circuit manufacturer must detect and correct such defects before shipping large number of parts to customers to avoid a costly recall. A manufacturing defect involves some fault in the manufacture of the integrated circuit that will effect less than all parts manufactured. Such defects are corrected by identification and correction of the manufacturing fault.
Most integrated circuit manufacturers test integrated circuits for proper function before shipment to customers. With the increase in integrated circuit complexity this testing is increasingly difficult. Many manufacturers rather than rely on increasingly expensive external testing devices test integrated circuits using a technique called built-in self test (BIST). BIST involves using circuits manufactured on the integrated circuit to test the integrated circuit. When triggered either automatically in circuit operation or by an external test device, the BIST circuits produce a set of test conditions run on the ordinary circuit hardware. Comparison of the state of the integrated circuit following test to an expected state indicates whether the integrated circuit passed the test. An example of such a test is writing to a read/write memory and recalling the data written. A match between the data written and the data read results in passing the test. BIST typically involves other more complex tests.
A subset of BIST is programmable built-in self test (pBIST) which uses a general purpose test engine programmed by a set of instructions. This set of test instructions is typically stored on the integrated circuit in a read only memory (ROM) storing test instructions particularly developed for that integrated circuit. pBIST enables re-use of hardware and test instructions to cover a family of similar but not identical integrated circuits. pBIST typically does not have the ability to support go/no-go type of testing using an instruction ROM.